const fs = require('fs');
const path = require('path');

// 日志文件路径（当前目录下的app.log）
const logFilePath = path.join(__dirname, 'app.log');

// 重定向console.log和console.error到文件
function setupFileLogging() {
  // 保存原始console方法
  const originalConsoleLog = console.log;
  const originalConsoleError = console.error;

  // 创建日志写入流（追加模式）
  const logStream = fs.createWriteStream(logFilePath, { flags: 'a' });

  // 重写console.log
  console.log = function(...args) {
    // 保留控制台输出
    originalConsoleLog.apply(console, args);
    
    // 格式化日志（带时间戳）
    const timestamp = new Date().toISOString();
    const logMessage = `[${timestamp}] [LOG] ${args.join(' ')}\n`;
    
    // 写入文件
    logStream.write(logMessage);
  };

  // 重写console.error
  console.error = function(...args) {
    // 保留控制台输出
    originalConsoleError.apply(console, args);
    
    // 格式化错误日志（带时间戳）
    const timestamp = new Date().toISOString();
    const errorMessage = `[${timestamp}] [ERROR] ${args.join(' ')}\n`;
    
    // 写入文件
    logStream.write(errorMessage);
  };

  // 应用退出时关闭流
  process.on('exit', () => {
    logStream.end();
  });
}

module.exports = { setupFileLogging };